// const path = require('path')

// const Koa = require('koa')
// const cors = require('@koa/cors')   // 跨域
// const koaBody = require('koa-body')  // post请求或文件上传处理
// const json = require('koa-json')   // 序列化
// const helmet = require('koa-helmet')   // web安全
// const koaStatic = require('koa-static')
// const app = new Koa()
// const router = require('./routers/routers')

// 配置了webpack支持了ES6模块化
import path from 'path'    // nodejs内置模块

import Koa from 'koa'   // koa框架
import koaCors from '@koa/cors'   // 跨域处理
import koaBody from 'koa-body' // post请求或文件上传处理
import koaJson from 'koa-json'  // 序列化
import koaHelmet from 'koa-helmet'  // web安全
import koaStatic from 'koa-static'   // 静态资源服务器
import koaCompose from 'koa-compose'  // 合并中间件
import compress from 'koa-compress'   // 压缩代码

import router from './routers/routers'

const app = new Koa()

const isDevMode = process.env.NODE_ENV === 'production' ? false : true

// app.use(koaHelmet())
// app.use(router())
// app.use(koaStatic(path.join(__dirname, '../public')))
// app.use(koaBody())
// app.use(koaCors())
// // 加上pretty才会返回json
// app.use(koaJson({ pretty: false, param: 'pretty'}))

const middleware = koaCompose([
    koaBody(),
    koaStatic(path.join(__dirname, '../public')),
    koaCors(),
    koaJson({ pretty: false, param: 'pretty'}),
    koaHelmet()
])

if (!isDevMode){
    app.use(compress())
}

app.use(middleware)
app.use(router())

// app.use(router.routes())
//     .use(router.allowedMethods())

app.listen(3000)